package appmodelo.modulo1.web.util;

import java.io.File;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class WebUtil {

	// Pega um objeto na sessão. Key é o nome do objeto na sessao
	public static Object get(String key) {
		return getSession().getAttribute(key);
	}

	public static void put(String key, Object value) {
		getSession().setAttribute(key, value);
	}

	public static ExternalContext getExternalContext() {
		return FacesContext.getCurrentInstance().getExternalContext();
	}

	public static ServletContext getContexto() {
		return (ServletContext) getExternalContext().getContext();
	}

	public static HttpSession getSession() {
		return (HttpSession) getExternalContext().getSession(false);
	}

	public static HttpServletResponse getResponse() {
		return (HttpServletResponse) getExternalContext().getResponse();
	}

	public static String getFormularioAtual() {
		return FacesContext.getCurrentInstance().getViewRoot().getViewId();
	}

	/**
	 * Obtem o caminho completo do diretorio na maquina. Ex.:
	 * "c:/servidor_jboss/jboss7/sac/"
	 */
	public static String getPathDiretorioWeb(String diretorio) {
		return getContexto().getRealPath(diretorio);
	}

	public static String getPathContextoWeb() {
		return FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath();
	}

	public static String getDiretorioArquivosProperties() {
		return getPathDiretorioWeb(File.separator + "WEB-INF" + File.separator + "conf");
	}

	public static String getDiretorioBaseArquivosSPED() throws FileNotFoundException, IOException {

		String arqProperties = getDiretorioArquivosProperties() + File.separator + "configDiretorioBase.properties";
		File f = new File(arqProperties);
		Properties p = new Properties();
		p.load(new FileInputStream(f));
		String dirBaseArquivosSPED = p.getProperty("DiretorioBase.ArquivosFiscais");

		return dirBaseArquivosSPED;
	}

}
